struct vin_vct 
{
	float4 vertex : POSITION;
	float4 color : COLOR;
	float2 texcoord : TEXCOORD0;
};

struct vin_vctt
{
	float4 vertex : POSITION;
	float4 color : COLOR;
	float2 texcoord : TEXCOORD0;
	float2 texcoord1 : TEXCOORD1;
};

struct v2f_vct
{
	float4 vertex : POSITION;
	float4 color : COLOR;
	float2 texcoord : TEXCOORD0;
};

struct v2f_vctt
{
	float4 vertex : POSITION;
	float4 color : COLOR;
	float2 texcoord : TEXCOORD0;
	float2 texcoord1 : TEXCOORD1;
};

sampler2D _MainTex;
float4 _MainTex_ST;

// Transform position, pass through everything else

v2f_vct vert_vct(vin_vct v)
{
	v2f_vct o;
	o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
	o.color = v.color;
	o.texcoord = v.texcoord;
	return o;
}

v2f_vctt vert_vctt(vin_vctt v)
{
	v2f_vctt o;
	o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
	o.color = v.color;
	o.texcoord = v.texcoord;
	o.texcoord1 = v.texcoord1;
	return o;
}

fixed4 frag_mult(v2f_vct i) : COLOR
{
	fixed4 col = tex2D(_MainTex, i.texcoord) * i.color;
	return col;
}

fixed4 frag_cutout(v2f_vct i) : COLOR
{
	fixed4 col = tex2D(_MainTex, i.texcoord) * i.color;
	float a = step(1.0f/256f, col.a);
	col.rgb *= a;
	col.a = a;
	return col;
}
